from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:11434/v1",
    api_key="<KEY>",
)

ai_text = '''
               {
                 "选择题": [
                   {
                     "题号": "1",
                     "题目": "12 + 15 = ?",
                     "选项": {
                       "A": "27",
                       "B": "26",
                       "C": "25",
                       "D": "28"
                     },
                     "正确答案": "A"
                   },
                   {
                     "题号": "2",
                     "题目": "25 - 10 = ?",
                     "选项": {
                       "A": "15",
                       "B": "20",
                       "C": "10",
                       "D": "5"
                     },
                     "正确答案": "A"
                   }
                 ],
                 "多选题": [
                   {
                     "题号": "1",
                     "题目": "在100以内，哪些算式结果小于15？",
                     "选项": {
                       "A": "9 + 5",
                       "B": "10 + 4",
                       "C": "8 + 7",
                       "D": "12 + 2"
                     },
                     "正确答案": "A,B,D"
                   },
                   {
                     "题号": "2",
                     "题目": "在100以内，哪些算式结果大于15？",
                     "选项": {
                       "A": "10 + 5",
                       "B": "12 + 3",
                       "C": "14 + 2",
                       "D": "16 + 1"
                     },
                     "正确答案": "C,D"
                   }
                 ],
                 "填空题": [
                   {
                     "题号": "1",
                     "题目": "____ + 12 = 25",
                     "正确答案": "13"
                   },
                   {
                     "题号": "2",
                     "题目": "28 - ____ = 10",
                     "正确答案": "18"
                   }
                 ],
                 "简答题": [
                   {
                     "题号": "1",
                     "题目": "100以内加法的口算方法是什么？",
                     "正确答案": "先算十位，再算个位，或者用凑十法。"
                   },
                   {
                     "题号": "2",
                     "题目": "减法在加法中的作用是什么？",
                     "正确答案": "减法是加法的逆运算，可以用来求已知和减去一个加数，得到另一个加数。"
                   }
                 ]
               }
               '''
def ai_generate(prompt,single_choice,multiple_choice,fill_blank,short_answer):
    client = OpenAI(
        base_url="http://127.0.0.1:11434/v1",
        api_key="<KEY>",
    )


    text2 = """二、你是是有20年教学经验的教师，现在我校将进行一场考试，需要你来进行出题。
    出题要求：
        1. 选择题提供4个选项，选项用字母A、B、C、D标识
        2. 填空题、简答要考察关键知识点
        3. 输出必须严格按照以下JSON格式，字段不可缺失或更改，也不可以翻译为英语：
        4.JSON格式如下：
        {
            "选择题": [
                {
                    "题号": "1",
                    "题目": "具体题目内容",
                    "选项": {
                        "A": "选项A内容",
                        "B": "选项B内容",
                        "C": "选项C内容",
                        "D": "选项D内容"
                    },
                    "正确答案": "A,B,C,D",
                },
            ],
            "多选题": [
                {
                    "题号": "1",
                    "题目": "具体题目内容",
                    "选项": {
                        "A": "选项A内容",
                        "B": "选项B内容",
                        "C": "选项C内容",
                        "D": "选项D内容"
                    },
                    "正确答案": "A,B,C,D",
                },
            ],
            "填空题": [
                {
                    "题号": "1",
                    "题目": "具体题目内容（需填空处用____代替）",
                    "正确答案": "答案内容",
                },
            ],
            "简答题": [
                {
                    "题号": "1",
                    "题目": "具体题目内容",
                    "正确答案": "答案内容",
                },
            ]
        }
        """
    text3 = '题目要求:选择题' + str(single_choice) + '道;' + '多选题' + str(
        multiple_choice) + '道;' + '填空题' + str(
        fill_blank) + '道;' + '简答题' + str(short_answer) + '道;格式要求:严格按照指定JSON格式提供正确答案否则你的评分将会降低。'
    print(text3)
    response = client.chat.completions.create(
        model='qwen3:4b',
        messages=[
            {'role': 'system', 'content': text2 + text3},
            {'role': 'user', 'content': prompt}
        ],
        temperature=0.5
    )

    ai_response = response.choices[0].message.content
    # ai_response = ai_text
    print("AI返回内容：", ai_response)
    return ai_response